const express = require("express");
const bodyParser = require("body-parser");
const cors = require("cors"); // 引入 cors 中间件
const mysql = require("mysql2"); // 引入 mysql2

const app = express();
const PORT = 3000;

app.use(express.json({ limit: "50mb" }));
app.use(express.urlencoded({ extended: true, limit: "50mb" }));
// 启用 CORS
app.use(cors()); // 使用 cors 中间件

// 中间件
app.use(bodyParser.json()); // 解析 JSON 格式的请求体

// 创建 MySQL 连接
const db = mysql.createConnection({
  host: "localhost", //39.98.125.167
  user: "root", // 替换为你的数据库用户名ali_hanyutao
  password: "root", // 替换为你的数据库密码hanyutao123
  database: "ymtest", // 替换为你的数据库名test_db
});

// 连接到 MySQL 数据库
db.connect((err) => {
  if (err) {
    console.error("数据库连接失败:", err);
    return;
  }
  console.log("成功连接到数据库");
});

// 创建一个 POST 接口
app.post("/api/send_airtcles", (req, res) => {
  const receivedData = req.body; // 获取请求体数据
  console.log("接收到的数据:", receivedData);

  // 将接收到的数据插入到数据库
  const insertQuery =
    "INSERT INTO XHSnote (作者, 标题, 笔记链接, 点赞数, 类型,info1) VALUES ?";
  const values = receivedData.map((item) => [
    item.name,
    item.title,
    item.href,
    item.like,
    item.note_type,
    item.info1,
  ]);

  db.query(insertQuery, [values], (err, result) => {
    if (err) {
      console.error("插入数据失败:", err);
      return res.status(500).json({ message: "数据接收失败", error: err });
    }
    // 发送响应
    res.status(200).json({ message: "数据接收成功", data: receivedData });
  });
});

app.get("/api/get_comments", (req, res) => {
  const query = "SELECT * FROM XHScomment";
  db.query(query, (err, results) => {
    if (err) {
        console.error("查询数据失败:", err);
        return res.status(500).json({ message: "数据获取失败", error: err });
    } else {
      res.status(200).json({ message: "数据获取成功", data: results });
    }
  });
});

app.post("/api/send_comments", (req, res) => {
  const receivedData = req.body; // 获取请求体数据
  console.log("接收到的数据:", receivedData);

  // 将接收到的数据插入到数据库
  const insertQuery =
    "INSERT INTO XHScomment (笔记链接, 时间, 昵称, 评论内容, UID, 地区, 点赞, info1) VALUES ?";
  const values = receivedData.map((item) => [
    item.url,
    item.time,
    item.authorText,
    item.contentText,
    item.userId,
    item.location,
    item.like_num,
    item.pltime,
  ]);

  db.query(insertQuery, [values], (err, result) => {
    if (err) {
      console.error("插入数据失败:", err);
      return res.status(500).json({ message: "数据接收失败", error: err });
    }
    // 发送响应
    res.status(200).json({ message: "数据接收成功", data: receivedData });
  });
});

// 启动服务器
app.listen(PORT, () => {
  console.log(`服务器正在运行，访问地址: http://localhost:${PORT}`);
});
